/*
 * net_msg.c
 *
 *  Created on: 2023年8月23日
 *      Author: mcealt_DS
 */

#include "net_msgseq.h"
#include "device.h"

static uint8_t msgSeq = 1;

#ifdef HUB_DEVICE
static uint8_t msgSeq_node[NODE_MAX_COUNT] = {1};
#endif

/*设置消息序号*/
void set_msgSeq(uint8_t seq)
{
    msgSeq = seq;
}

/*获取消息序号*/
uint8_t get_msgSeq(void)
{
    return msgSeq;
}

/*更新消息序号*/
void net_msgseq_update(void)
{
    if (msgSeq == 255)
        msgSeq = 2;
    else
        msgSeq++;
}

/*点对点HUB主动下发 更新消息序号*/
void net_msgseq_update_node(uint8_t device_id)
{
#ifdef HUB_DEVICE
    if (msgSeq_node[device_id] == 255)
        msgSeq_node[device_id] = 2;
    else
        msgSeq_node[device_id]++;
#else
    (void) device_id;
#endif
}

#ifdef HUB_DEVICE
// HUB接收到设备的aseq
static uint8_t rec_node_msgseq[NODE_MAX_COUNT] = {1};
uint8_t get_rec_node_msgseq(uint8_t device_id)
{
    return rec_node_msgseq[device_id];
}
void set_rec_node_msgseq(uint8_t device_id, uint8_t msgseq)
{
    rec_node_msgseq[device_id] = msgseq;
}
#endif
